/**
 * Copyright (c) 2021 Coder League
 * All rights reserved.
 *
 * File：GoodDaoExtension.java
 * History:
 *         2021年1月5日: Initially created, Chrise.
 */
package club.coderleague.cfss.dao.extension;

import java.util.List;

import club.coderleague.cfss.domain.beans.GoodSearcher;
import club.coderleague.cfss.domain.beans.GoodUpdateRequest;
import club.coderleague.cfss.domain.beans.ListGood;
import club.coderleague.cfss.domain.beans.OrderGoodCheck;
import club.coderleague.cfss.domain.beans.ViewGoodDetail;
import club.coderleague.cfss.domain.beans.ViewListGood;
import club.coderleague.data.jpa.repository.DataRepositoryExtension;

/**
 * 商品数据访问对象扩展。
 * @author Chrise
 */
public interface GoodDaoExtension extends DataRepositoryExtension {
	/**
	 * 查询商品管理列表数据。
	 * @author Chrise 2021年1月10日
	 * @param supplier 供应商标识。
	 * @param goodpic 商品图片相对路径。
	 * @return 商品管理列表数据。
	 */
	List<ListGood> queryMgrListData(long supplier, String goodpic);
	
	/**
	 * 查询商品管理商品数据。
	 * @author Chrise 2021年1月11日
	 * @param goodid 商品标识。
	 * @return 商品管理商品数据。
	 */
	GoodUpdateRequest queryMgrGoodData(long goodid);
	
	/**
	 * 检查商品是否存在。
	 * @author Chrise 2021年1月5日
	 * @param supplier 供应商标识。
	 * @param name 商品名称。
	 * @param code 商品编码。
	 * @param id 商品标识。
	 * @return 查重结果。
	 */
	boolean existsGood(long supplier, String name, String code, Long id);
	
	/**
	 * 查询商品浏览列表数据。
	 * @author Chrise 2021年1月16日
	 * @param searcher 商品搜索器。
	 * @param goodpic 商品图片相对路径。
	 * @return 商品浏览列表数据。
	 */
	List<ViewListGood> queryViewListData(GoodSearcher searcher, String goodpic);
	
	/**
	 * 验证商品。
	 * @author Chrise 2021年1月17日
	 * @param goodids 商品标识。
	 * @return 在售商品。
	 */
	List<ListGood> checkGoods(List<Long> goodids);
	
	/**
	 * 查询商品浏览详情数据。
	 * @author Chrise 2021年1月24日
	 * @param goodid 商品标识。
	 * @return 商品浏览详情数据。
	 */
	ViewGoodDetail queryViewDetailData(long goodid);
	
	/**
	 * 验证订单商品。
	 * @author Chrise 2021年1月27日
	 * @param goodids 商品标识。
	 * @return 订单商品。
	 */
	List<OrderGoodCheck> checkOrderGoods(List<Long> goodids);
}
